1 TADPOLE and BESS

BESS Analysis

1.1 Loading the libraries

library("FRESA.CAD")
library(readxl)
library(igraph)
pander::panderOptions('digits', 3)
pander::panderOptions('table.split.table', 400)
pander::panderOptions('keep.trailing.zeros',TRUE)

1.2 Loading BSWiMS Results

opo <- par(no.readonly = TRUE)

load("~/GitHub/BSWiMS/TADPOLE_BSWIMS_Results.RData")
op <- opo

2 Predicting ADAS13

Here we will diagnose ADAS13

2.1 Learning ADAS13

BESSml <- BESS(ADAS13~.,TADPOLECrossMRITrain)

pander::pander(t(BESSml$selectedfeatures))
Table continues below
Gender Hippocampus ST128SV ST1SV ST2SV ST68SV M_ST24TA M_ST25TA M_ST44TA M_ST54TA M_ST57TA M_ST62TA M_ST13TS M_ST15TS M_ST23TS M_ST25TS M_ST39TS M_ST44TS M_ST48TS M_ST54TS M_ST56TS M_ST14SA M_ST15SA M_ST23SA M_ST24SA M_ST31SA M_ST129SA M_ST35SA M_ST39SA M_ST47SA M_ST50SA M_ST51SA M_ST55SA M_ST57SA M_ST40CV M_ST45CV M_ST46CV
Table continues below
M_ST52CV M_ST60CV M_ST17SV M_ST30SV M_ST61SV M_ST65SV RD_ST13TA RD_ST15TA RD_ST23TA RD_ST31TA RD_ST32TA RD_ST35TA RD_ST43TA RD_ST44TA RD_ST46TA RD_ST49TA RD_ST50TA RD_ST55TA RD_ST56TA RD_ST60TA RD_ST62TA RD_ST13TS RD_ST14TS RD_ST24TS RD_ST32TS RD_ST40TS RD_ST43TS RD_ST46TS RD_ST47TS RD_ST48TS RD_ST50TS RD_ST57TS RD_ST59TS
Table continues below
RD_ST60TS RD_ST62TS RD_ST15SA RD_ST24SA RD_ST32SA RD_ST129SA RD_ST35SA RD_ST38SA RD_ST44SA RD_ST47SA RD_ST50SA RD_ST57SA RD_ST58SA RD_ST59SA RD_ST60SA RD_ST14CV RD_ST15CV RD_ST24CV RD_ST25CV RD_ST26CV RD_ST32CV RD_ST34CV RD_ST35CV RD_ST36CV RD_ST40CV RD_ST44CV RD_ST46CV RD_ST52CV RD_ST54CV RD_ST56CV RD_ST62CV RD_ST16SV RD_ST18SV
RD_ST21SV RD_ST61SV RD_ST65SV RD_ST66SV

prreg <- predictionStats_regression(cbind(TADPOLECrossMRITest$ADAS13,predict(BESSml,TADPOLECrossMRITest)),"ADAS13")

ADAS13

pander::pander(prreg)
  • corci:

    cor    
    0.661 0.617 0.701
  • biasci: -0.4464, -0.9868 and 0.0941

  • RMSEci: 7.32, 6.95 and 7.72

  • spearmanci:

    50% 2.5% 97.5%
    0.62 0.571 0.665
  • MAEci:

    50% 2.5% 97.5%
    5.72 5.39 6.07
  • pearson:

    Pearson’s product-moment correlation: predictions[, 1] and predictions[, 2]
    Test statistic df P value Alternative hypothesis cor
    23.3 702 1.13e-89 * * * two.sided 0.661
par(op)

2.2 Decorrelated

BESSmlD <- BESS(ADAS13~.,TADPOLECrossMRITrainD)

prreg <- predictionStats_regression(cbind(TADPOLECrossMRITestD$ADAS13,predict(BESSmlD,TADPOLECrossMRITestD)),"ADAS13")

ADAS13

pander::pander(prreg)
  • corci:

    cor    
    0.661 0.618 0.701
  • biasci: -0.596, -1.136 and -0.056

  • RMSEci: 7.32, 6.96 and 7.72

  • spearmanci:

    50% 2.5% 97.5%
    0.648 0.599 0.691
  • MAEci:

    50% 2.5% 97.5%
    5.58 5.23 5.93
  • pearson:

    Pearson’s product-moment correlation: predictions[, 1] and predictions[, 2]
    Test statistic df P value Alternative hypothesis cor
    23.4 702 8.94e-90 * * * two.sided 0.661
par(op)

3 Diagnosis MCI vs AD

3.1 Learning

#TADPOLE_DX_TRAIN$DX <- as.factor(TADPOLE_DX_TRAIN$DX)

BESSDXml <- BESS(DX~.,TADPOLE_DX_TRAIN)
pr <- predict(BESSDXml,TADPOLE_DX_TEST,type="response")

prBin <- predictionStats_binary(cbind(TADPOLE_DX_TEST$DX,pr),"MCI vs Dementia")

MCI vs Dementia

pander::pander(prBin$aucs)
est lower upper
0.624 0.567 0.681
pander::pander(prBin$accc)
est lower upper
0.687 0.638 0.733
pander::pander(prBin$berror)
50% 2.5% 97.5%
0.386 0.33 0.442
pander::pander(prBin$sensitivity)
est lower upper
0.469 0.368 0.573
par(op)

3.1.1 Decorrelated ML


BESSDXmlD <- BESS(DX~.,TADPOLE_DX_TRAIND)


prBin <- predictionStats_binary(cbind(TADPOLE_DX_TESTD$DX,predict(BESSDXmlD,TADPOLE_DX_TESTD,type="response")),"MCI vs Dementia")

MCI vs Dementia

pander::pander(prBin$aucs)
est lower upper
0.662 0.606 0.718
pander::pander(prBin$accc)
est lower upper
0.734 0.686 0.777
pander::pander(prBin$berror)
50% 2.5% 97.5%
0.34 0.282 0.394
pander::pander(prBin$sensitivity)
est lower upper
0.51 0.407 0.613
par(op)

4 Diagnosis NL vs AD

4.1 Learning

BESSDXmlNLDE <- BESS(DX~.,TADPOLE_DX_NLDE_TRAIN)

prBin <- predictionStats_binary(cbind(TADPOLE_DX_NLDE_TEST$DX,predict(BESSDXmlNLDE,TADPOLE_DX_NLDE_TEST,type="response")),"NL vs Dementia")

NL vs Dementia

pander::pander(prBin$aucs)
est lower upper
0.849 0.8 0.899
pander::pander(prBin$accc)
est lower upper
0.821 0.771 0.864
pander::pander(prBin$berror)
50% 2.5% 97.5%
0.198 0.148 0.252
pander::pander(prBin$sensitivity)
est lower upper
0.735 0.636 0.819
par(op)

4.2 Decorrelated Set

4.2.1 Learning


BESSDXmlNLDED <- BESS(DX~.,TADPOLE_DX_NLDE_TRAIND)

prBin <- predictionStats_binary(cbind(TADPOLE_DX_NLDE_TESTD$DX,predict(BESSDXmlNLDED,TADPOLE_DX_NLDE_TESTD,type="response")),"NL vs Dementia")

NL vs Dementia

pander::pander(prBin$aucs)
est lower upper
0.852 0.803 0.901
pander::pander(prBin$accc)
est lower upper
0.821 0.771 0.864
pander::pander(prBin$berror)
50% 2.5% 97.5%
0.212 0.168 0.267
pander::pander(prBin$sensitivity)
est lower upper
0.673 0.571 0.765
par(op)

5 Prognosis MCI to AD Conversion

Cox modeling of MCI to Dementia Conversion

5.1 Learning

Learning COX and ploting performance



bConvml <- BESS(Surv(TimeToEvent,status)~.,TADPOLE_Conv_TRAIN)

ptestl <- predict(bConvml,TADPOLE_Conv_TEST,type="response")
ptestr <- exp(ptestl)
boxplot(ptestl~TADPOLE_Conv_TEST$status)

boxplot(ptestr~TADPOLE_Conv_TEST$status)



perdsurv <- cbind(TADPOLE_Conv_TEST$TimeToEvent,
                  TADPOLE_Conv_TEST$status,
                  ptestl,
                  ptestr)

if (max(ptestl)>0 && min(ptestl)<0 )
{
  prSurv <- predictionStats_survival(perdsurv,"MCI to  AD Conversion")
  pander::pander(prSurv$CIRisk)
  pander::pander(prSurv$CILp)
  pander::pander(prSurv$spearmanCI)
}

5.2

50% 2.5% 97.5%
0.295 0.101 0.476

prBin <- predictionStats_binary(cbind(TADPOLE_Conv_TEST$status,ptestl),"MCI to  AD Conversion")

MCI to AD Conversion

pander::pander(prBin$aucs)
est lower upper
0.737 0.676 0.799
pander::pander(prBin$CM.analysis$tab)
  Outcome + Outcome - Total
Test + 69 55 124
Test - 29 120 149
Total 98 175 273

par(op)

5.3 Decorrelated

The decorrelated data set ### Learning Learning



bConvmlD <- BESS(Surv(TimeToEvent,status)~.,TADPOLE_Conv_TRAIND)

ptestl <- predict(bConvmlD,TADPOLE_Conv_TESTD)
ptestr <- exp(ptestl)
boxplot(ptestl~TADPOLE_Conv_TEST$status)

boxplot(ptestr~TADPOLE_Conv_TEST$status)


perdsurv <- cbind(TADPOLE_Conv_TEST$TimeToEvent,
                  TADPOLE_Conv_TEST$status,
                  ptestl,
                  ptestr)


if (max(ptestl)>0 && min(ptestl)<0 )
{
  prSurv <- predictionStats_survival(perdsurv,"MCI to  AD Conversion")
  pander::pander(prSurv$CIRisk)
  pander::pander(prSurv$CILp)
  pander::pander(prSurv$spearmanCI)
}

prBin <- predictionStats_binary(cbind(TADPOLE_Conv_TESTD$status,ptestl),"MCI to  AD Conversion")

MCI to AD Conversion

pander::pander(prBin$aucs)
est lower upper
0.825 0.774 0.875
pander::pander(prBin$CM.analysis$tab)
  Outcome + Outcome - Total
Test + 0 0 0
Test - 98 175 273
Total 98 175 273

par(op)

5.3.1 The End

.